#ifndef I_LOG_H
#define I_LOG_H
#include <string>
namespace base {

class ILog {
public:
    explicit ILog(const std::string &name)
        : name_(name)
    {}
    virtual void LogCreate() = 0;
    virtual void LogDestroy() = 0;
    virtual void LogAssert(const std::string &value) = 0;
    virtual void LogError(const std::string &value) = 0;
    virtual void LogWarn(const std::string &value) = 0;
    virtual void LogInfo(const std::string &value) = 0;
    virtual void LogDebug(const std::string &value) = 0;
    virtual void LogVerbose(const std::string &value) = 0;
    virtual ~ILog();

    virtual void LogSetColor(bool enable);

private:
    std::string name_;
    
};

} // namespace base

#endif //I_LOG_H